package com.gopay.common.domain.user;

import com.gopay.common.domain.BaseEntity;

import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Lob;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.Version;

/**
 * @Author xuexj
 * @Date 2017/1/5 17:04
 * @Desc 安全控件附属信息实体类
 */
@Entity
@Table(name = "PWD_CTRL_ATTR_INFO")
public class PwdCtrlAttrInfo extends BaseEntity {

    private static final long serialVersionUID = 1L;

    @Id
    @SequenceGenerator(name="generator",allocationSize=1,initialValue=1,sequenceName="PWD_CTRL_ATTR_INFO_SEQ")
    @GeneratedValue(strategy=GenerationType.SEQUENCE,generator="generator")
    @Column(name = "ID")
    private Integer id;
    @Column(name = "USER_ID")
    private String userId;
    @Column(name = "CUST_ID")
    private String custId;
    @Column(name = "GOPAY_ORDER_ID")
    private String gopayOrderId;
    @Column(name = "MAC")
    private String mac; //MAC地址
    @Column(name = "IP")
    private String ip; //IP地址
    @Column(name = "REAL_IP")
    private String realIp; //IP地址
    @Column(name = "HD_SN")
    private String hdSn; //硬盘编号
    @Column(name = "CPU_SN")
    private String cpuSn; //CPU编号
    @Column(name = "BIOS_SN")
    private String biosSn; //BIOS编号
    @Column(name = "OS_INFO")
    private String osInfo; //操作系统信息
    @Column(name = "EXPLORER_INFO")
    private String explorerInfo; //浏览器版本
    @Column(name = "OPER_TIME")
    private String operTime; //操作时间
    @Column(name = "OPER_SOURCE")
    private String OperSource; //操作来源
    @Column(name = "TM_ZONE")
    private String tmZone; //所在时区
    @Column(name = "DEF_LANG")
    private String defLang; //默认语言
    @Column(name = "SCR_RSL")
    private String scrRsl; //屏幕分辨率
    @Lob
    @Basic(fetch = FetchType.EAGER)
    @Column(name = "REMARK", columnDefinition = "CLOB")
    private String remark; //备注
    @Column(name = "STATUS")
    private String status; //操作状态
    @Column(name = "GMT_CREATE")
    private String gmtCreate; //创建时间
    @Column(name = "NETWORK")
    private String network; //网卡信息
    @Column(name = "VERSION")
    @Version
    private Integer version; //乐观锁版本号

    /*自研控件获取硬件信息 added by wangdong at 2017-04-09 start*/
    @Column(name = "OS_BROWSER")
    private String osBrowser; //浏览器操作系统版本

    @Lob
    @Basic(fetch = FetchType.EAGER)
    @Column(name = "SUSPICION", columnDefinition = "CLOB")
    private String suspicion; //备注
    /*自研控件获取硬件信息 added by wangdong at 2017-04-09 end*/

    //add by liuyu, 20180522, 键盘芭蕾start
    //设备类型，目前固定传1
    @Column(name = "APP_TYPE")
    private String appType;

    //用户名，custId/operId + [操作员id] + login/pay
    @Column(name = "USER_NAME")
    private String userName;

    //本次密码的hash值
    @Column(name = "PWD_RESULT_HASH")
    private String pwdResultHash;

    //本次32位随机数
    @Column(name = "RANDOM_NUM")
    private String randomNum;

    //用户按键信息采集
    @Column(name = "USER_FINGER")
    private String userFinger;

    //键盘芭蕾动作
    @Column(name = "ACTION")
    private String action;

    //键盘芭蕾服务响应码
    @Column(name = "FINGER_CODE")
    private String fingerCode;

    //键盘芭蕾服务响应结果
    @Column(name = "FINGER_RESULT")
    private String fingerResult;

    //键盘芭蕾认证相似度
    @Column(name = "SIMILARITY")
    private String similarity;

    //键盘芭蕾用户最小相似度
    @Column(name = "SIMILARITY_MIN")
    private String similarityMin;
    //add by liuyu, 20180522, 键盘芭蕾end

    public PwdCtrlAttrInfo(){
    }

    public PwdCtrlAttrInfo(String cpuSn,String hdSn,String remark){
        this.cpuSn = cpuSn;
        this.hdSn = hdSn;
        this.remark = remark;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getUserId() {
        return userId;
    }

    public void setUserId(String userId) {
        this.userId = userId;
    }

    public String getCustId() {
        return custId;
    }

    public void setCustId(String custId) {
        this.custId = custId;
    }

    public String getGopayOrderId() {
        return gopayOrderId;
    }

    public void setGopayOrderId(String gopayOrderId) {
        this.gopayOrderId = gopayOrderId;
    }

    public String getMac() {
        return mac;
    }

    public void setMac(String mac) {
        this.mac = mac;
    }

    public String getIp() {
        return ip;
    }

    public void setIp(String ip) {
        this.ip = ip;
    }

    public String getRealIp() {
        return realIp;
    }

    public void setRealIp(String realIp) {
        this.realIp = realIp;
    }

    public String getHdSn() {
        return hdSn;
    }

    public void setHdSn(String hdSn) {
        this.hdSn = hdSn;
    }

    public String getCpuSn() {
        return cpuSn;
    }

    public void setCpuSn(String cpuSn) {
        this.cpuSn = cpuSn;
    }

    public String getBiosSn() {
        return biosSn;
    }

    public void setBiosSn(String biosSn) {
        this.biosSn = biosSn;
    }

    public String getOsInfo() {
        return osInfo;
    }

    public void setOsInfo(String osInfo) {
        this.osInfo = osInfo;
    }

    public String getExplorerInfo() {
        return explorerInfo;
    }

    public void setExplorerInfo(String explorerInfo) {
        this.explorerInfo = explorerInfo;
    }

    public String getOperTime() {
        return operTime;
    }

    public void setOperTime(String operTime) {
        this.operTime = operTime;
    }

    public String getTmZone() {
        return tmZone;
    }

    public void setTmZone(String tmZone) {
        this.tmZone = tmZone;
    }

    public String getDefLang() {
        return defLang;
    }

    public void setDefLang(String defLang) {
        this.defLang = defLang;
    }

    public String getScrRsl() {
        return scrRsl;
    }

    public void setScrRsl(String scrRsl) {
        this.scrRsl = scrRsl;
    }

    public String getOperSource() {
        return OperSource;
    }

    public void setOperSource(String operSource) {
        OperSource = operSource;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public String getGmtCreate() {
        return gmtCreate;
    }

    public void setGmtCreate(String gmtCreate) {
        this.gmtCreate = gmtCreate;
    }

    public String getNetwork() {
        return network;
    }

    public void setNetwork(String network) {
        this.network = network;
    }

    public Integer getVersion() {
        return version;
    }

    public void setVersion(Integer version) {
        this.version = version;
    }

    public String getSuspicion() {
        return suspicion;
    }

    public void setSuspicion(String suspicion) {
        this.suspicion = suspicion;
    }

    public String getOsBrowser() {
        return osBrowser;
    }

    public void setOsBrowser(String osBrowser) {
        this.osBrowser = osBrowser;
    }

    public String getAppType() {
        return appType;
    }

    public void setAppType(String appType) {
        this.appType = appType;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getPwdResultHash() {
        return pwdResultHash;
    }

    public void setPwdResultHash(String pwdResultHash) {
        this.pwdResultHash = pwdResultHash;
    }

    public String getRandomNum() {
        return randomNum;
    }

    public void setRandomNum(String randomNum) {
        this.randomNum = randomNum;
    }

    public String getUserFinger() {
        return userFinger;
    }

    public void setUserFinger(String userFinger) {
        this.userFinger = userFinger;
    }

    public String getFingerCode() {
        return fingerCode;
    }

    public void setFingerCode(String fingerCode) {
        this.fingerCode = fingerCode;
    }

    public String getFingerResult() {
        return fingerResult;
    }

    public void setFingerResult(String fingerResult) {
        this.fingerResult = fingerResult;
    }

    public String getSimilarity() {
        return similarity;
    }

    public void setSimilarity(String similarity) {
        this.similarity = similarity;
    }

    public String getSimilarityMin() {
        return similarityMin;
    }

    public void setSimilarityMin(String similarityMin) {
        this.similarityMin = similarityMin;
    }

    public String getAction() {
        return action;
    }

    public void setAction(String action) {
        this.action = action;
    }
}
